.. _ecSlv_WriteCoeSdo: ecSlv_WriteCoeSdo ================= ----------------- SYNOPSIS ````````````` .. code-block:: none t_i32 ecSlv_WriteCoeSdo ( t_i32 NetID, t_ui16 SlvPhysAddr, t_i32 Index, t_i32 SubIndex, t_i32 IsComptAccess, t_i32 DataSize, void* pBuf, t_i32 *ErrCode) t_i32 ecSlv_WriteCoeSdo_A ( t_i32 NetID, t_ui16 SlaveIdx, t_i32 Index, t_i32 SubIndex, t_i32 IsComptAccess, t_i32 DataSize, void* pBuf, t_i32 *ErrCode) .. Hint:: :ref:`ECAT_Appendix_00` 사용 가능 DESCRIPTION `````````````` - 지정한 슬레이브에서 지정된 SDO(Service Data Object) 오브젝트를 읽어서 반환하는 함수입니다. SDO(Service Data Object)는 비주기적으로 전달되는 데이터 오브젝트(Object)를 말합니다. 오브젝트에 대한 설명은 ecSlv_ReadCoeSdo 함수 설명편을 참고하시기 바랍니다. - ecSlv_WriteCoeSdo 함수는 슬레이브를 지정할 때 주소값을 사용하여 슬레이브를 지정합니다. - ecSlv_WriteCoeSdo_A 함수는 슬레이브를 지정할 때 네트워크 상에서 슬레이브의 연결 순서를 사용하여 슬레이브를 지정합니다. PARAMETER `````````````` - NetID : 사용자가 사용 할 Network 번호 - SlvPhysAddr: 슬레이브의 물리적 주소( ex. 서보 로터리 스위치로 선택한 축 번호) - SlaveIndex : 슬레이브의 연결 순서 - Index : 오브젝트 인덱스(Object Index) - SubIndex : 오브젝트의 서브인덱스(Sub-index) - IsComptAccess: 오브젝트가 배열이나 구조체로 이루어진 경우에 해당 오브젝트의 모든 서브인덱스에 해당하는 값을 쓰기할 것인지 아니면 서브인덱스로 지정된 데이터만 쓰기할 것인지를 결정하는 플래그입니다. 일반적으로 이 값은 0(false)으로 설정해야 합니다. +-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Value | Meaning | +=======+==========================================================================================================================================================================+ | 0 | 지정한 서브 인덱스에 대해서만 값을 씁니다. | +-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 1 | 모든 서브 인덱스에 대한 데이터를 한꺼번에 씁니다. 이 경우에는 SubIndex 값을 0으로 전달해야 하며, 버퍼는 오브젝트의 전체 데이터 구조와 일치하는 버퍼가 제공되어야 합니다. | +-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - DataSize : 쓰기할 DataSize. 이 값은 오브젝트 사전에서 정의된 해당 오브젝트의 데이터 크기와 일치해야 합니다. 그렇지 않으면 읽기에 실패할 수 있습니다. - pBuf: 쓰기 하는 데이터를 전달하는 버퍼. - ErrCode : 이 매개 변수를 통하여 현재의 에러 코드를 반환합니다. 단, 이 매개 변수에 NULL을 전달하면 에러 코드를 반환하지 않습니다. RETURN VALUE ``````````````` - 반환 값이 양수이면 쓰기한 데이터의 크기를 반환하는 것입니다. 반환 값이 음수이면 에러코드를 반환하는 것입니다. EXAMPLE ````````````` .. code-block:: cpp :linenos: //슬레이브 주소가 0x1인 슬레이브로부터 CiA DS-402 프로파일에서 정의한 ‘Max motor speed’ 오브젝트(아래 그림 참조)값을 3000으로 쓰기 하는 예. #define NETID 0 #define SLAVE_ADDR 0x1 t_i32 errCode; t_ui32 maxMotorSpeed = 3000; ecSlv_WriteCoeSdo (NETID, SLAVE_ADDR, 0x6080, 0, false, 4, &maxMotorSpeed, &errCode); .. image:: ecSlv_WriteCoeSdo_00.jpg :height: 85px :width: 567px :scale: 75% :align: left .. seealso:: :ref:`ecSlv_ReadCoeSdo`